#pragma once

#include "IRegisterSet.h"

#define REGISTER_COUNT 16

namespace VirtualHardware
{
	public ref class R09RegisterSet : IRegisterSet
	{
	public:
		property UInt32 default[UInt32]
		{
			virtual UInt32 get(UInt32 i)
			{
				return GetValueAt(i);
			}
			virtual void set(UInt32 i, UInt32 value)
			{
				SetValueAt(i, value);
			}
		}

		R09RegisterSet(void);

		virtual inline UInt32 GetValueAt(UInt32 i);
		virtual inline void SetValueAt(UInt32 i, UInt32 value);

	private:
		array<UInt32>^ registers;
	};
}
